#ifndef EXPAND_H
#define EXPAND_H
// vcg
//#include <vcg/simplex/vertex/base.h>
//#include <vcg/simplex/face/base.h>
//#include <vcg/complex/trimesh/base.h>

// app
#include "ringWalker.h"
#include "mymesh.h"
#include "../../myProject/AG/SpatialIndex.h"

//class Extension::SpatialIndex;
class Expander
{
public:
    Expander();
    void setMesh (CMesh *_mesh);
    void ring (CVertex *v, vector<CVertex*> *vv);
    void kRing (CVertex *v, int k, int min, vector<CVertex*> *vv);
    void sphereBreadth (CVertex *v, float r, int min, vector<CVertex*> *vv);
    void sphereSpace (CVertex *v, float r, vector<CVertex*> *vv);
    void sphereStructure (CVertex *v, float r, vector<CVertex*> *vv);

private:
    void max (CVertex *v, int max, vector<CVertex*> *vv);
    CMesh *mesh;
    Extension::SpatialIndex *myIndex;
};
#endif // EXPAND_H
